package com.medical.blood.mapper;
import com.medical.blood.dto.OperationStatsDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

@Mapper
public interface OperationStatsMapper {

    // 统计设备使用量（按设备ID分组，计数采血次数）
    Map<String, Integer> countDeviceUsage(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 统计检测项目分布（按项目名称分组，计数订单数）
    Map<String, Integer> countTestItemDistribution(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 统计用户增长趋势（按注册日期分组，计数新增用户）
    Map<String, Integer> countUserGrowth(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 统计日均订单量
    Integer countDailyOrderAvg(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 统计月均订单量
    Integer countMonthlyOrderAvg(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 统计总订单金额
    BigDecimal sumTotalOrderAmount(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}
